/**
 * Copyright 2009 Jesse Brown (jbrown@fluentv.com)
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); 
 * you may not use this file except in compliance with the License. 
 * You may obtain a copy of the License at 
 *   http://www.apache.org/licenses/LICENSE-2.0 
 * 
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
 * See the License for the specific language governing permissions and 
 * limitations under the License. 
 */
package com.fluentv.games.netblocks.piece;

/**
 * A flattened, inverted Z shape   
 * 
 * @author Jesse Brown (jbrown@fluentv.com)
 */
public class InvertedZShape extends Shape {

  private static final long serialVersionUID = 1L;

  /**
   * Create a flattened, inverted Z shape with the specified blocks for 
   * the top/bottom segments (shape will be block * 2 - 1 wide)
   * 
   * @param blocks segment size
   * @param color
   */
  public InvertedZShape(int segLength, int color) {    
    super(color, new boolean[0][0]);
    
    int blockWidth = (segLength * 2) - 1;
    super.shapeMask = new boolean[2][blockWidth];
    
    // From the left, right, mark seglength in.
    for (int s = 0; s < segLength; s++) {
      int x = blockWidth - 1 - s;
      super.shapeMask[0][x] = true;
    }
        
    // From the left, bottom, mark seglength back.
    for (int s = 0; s < segLength; s++) {
      super.shapeMask[1][s] = true;
    }   
  } 
}
